package moro;

/*
 * Deze klasse maakt een splashscreen die opstart bij het runnen van de mobile robot explorer.
 * Een manifest file moet worden aangemaakt en deze moet in de uiteindelijke JAR terecht komen, wil e.e.a. werken.
 * Het manifest bestand verwijst naar de plek waar de afbeelding staat. Als er geen afbeelding gevonden kan worden, zal er in het console 
 * "SplashScreen.getSplashScreen() returned null" worden gemeld. De klasse maakt gebruik van multithreading,
 * Bij het renderen van het splashscreen.
 * 
 * 
 * @author Niels
 * @version 1.0
 */

 
import java.awt.*;


public class Splash  {
    static void renderSplashFrame(Graphics2D g, int frame) {
        final String[] comps = {"Robot", "Sonar and Laser", "Solar panels"};
        g.setComposite(AlphaComposite.Clear);
        g.fillRect(120,140,300,70);
        g.setPaintMode();
        g.setColor(Color.BLACK);
        g.drawString("Loading "+comps[(frame/40)%3]+"...", 220, 150);
    }
    
 
    public Splash() {

        final SplashScreen splash = SplashScreen.getSplashScreen();
        if (splash == null) {
            System.out.println("SplashScreen.getSplashScreen() returned null");
            return;
        }
        Graphics2D g = splash.createGraphics();
        if (g == null) {
            System.out.println("g is null");
            return;
        }
        for(int i=0; i<100; i++) {
            renderSplashFrame(g, i);
            splash.update();
            try {
                Thread.sleep(75);
            }
            catch(InterruptedException e) {
            }
        }
        splash.close();
    }
    
         
   //public static void main (String args[]) {
   //   Splash test = new Splash();
   // }
}
